package main

import (
	"getip"
	"github.com/lxn/walk"
	. "github.com/lxn/walk/declarative"
)

/*
# 查本机 IP 小程序
- 通过 `ip-api.com` 查询本机的 ip 地址，接口有频率限制，同一 IP 请勿频繁查询。
- 使用 `walk` gui 只支持 windows 平台。
- build 之后 11MB 比 python 不知道强了多少。
*/

func main() {
	ipInfo := check_ip() // 获取本机 ip 地址

	var outTE *walk.TextEdit //声明输出文本框

	// main window
	window := MainWindow{
		Title:   "查 IP 小程序",
		MinSize: Size{300, 200}, //定义最小尺寸
		Size:    Size{300, 200}, //定义尺寸
		Layout:  VBox{},
		Children: []Widget{
			TextEdit{AssignTo: &outTE, ReadOnly: true}, // 只读文本
			// 按钮
			PushButton{
				Text: "获取 IP ",
				OnClicked: func() {
					outTE.SetText(ipInfo)
				},
			},
		},
	}
	window.Run() //运行 mainwindow
}

func check_ip() string {
	res, err := getip.GetIp()
	if err != nil {
		return err.Error()
	}
	return res
}
